@echo off
setlocal

:: 配置参数
set CERT_NAME=openiddict
set PFX_PASSWORD=69d2731d-0125-4f47-9dbe-ce30ae744c46
set PEM_PASSWORD=empower-4006701510
set DAYS=3650

echo 🛠️ 正在生成私钥和证书...
echo.

:: Step 1: 生成带密码的私钥（AES256 加密）
openssl genrsa -aes256 -passout pass:%PEM_PASSWORD% -out %CERT_NAME%.key 4096
if errorlevel 1 goto error

:: Step 2: 生成自签名证书
openssl req -new -x509 -days %DAYS% -key %CERT_NAME%.key -out %CERT_NAME%.crt ^
    -subj "/C=CN/ST=Beijing/L=Beijing/O=MyCompany/OU=IT/CN=localhost" ^
    -passin pass:%PEM_PASSWORD%
if errorlevel 1 goto error

:: Step 3: 导出为 .pfx 格式（无 PEM pass phrase，仅容器密码）
openssl pkcs12 -export -out %CERT_NAME%.pfx -inkey %CERT_NAME%.key -in %CERT_NAME%.crt ^
    -passin pass:%PEM_PASSWORD% ^
    -passout pass:%PFX_PASSWORD%
if errorlevel 1 goto error

echo.
echo ✅ 成功生成证书文件：
echo   - 私钥（带 PEM pass phrase）: %CERT_NAME%.key
echo   - 自签名证书: %CERT_NAME%.crt
echo   - PKCS#12 (.pfx) 文件: %CERT_NAME%.pfx
echo 🔐 PFX 密码: %PFX_PASSWORD%
echo 🔒 PEM pass phrase: %PEM_PASSWORD%

:: 打包为 ZIP
powershell Compress-Archive -Path %CERT_NAME%.key,%CERT_NAME%.crt,%CERT_NAME%.pfx -DestinationPath openiddict-certs.zip -Force
if exist openiddict-certs.zip (
    echo 📦 已打包为 ZIP：openiddict-certs.zip
)

echo.
echo 🎉 完成！你可以将 openiddict.pfx 挂载到 Docker 或部署到生产环境。
goto end

:error
echo ❌ 出现错误，请确认已正确安装 OpenSSL 并添加到系统 PATH。

:end
pause